From b39684b692755c7b2bcb9791079a72c041f3c58d Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 14 Oct 2020 00:25:57 -0400 Subject: [PATCH] stackswitcher: Set up relations and states Set up a CONTROLS relation between each tab button and its page, and update the SELECTED property of the buttons to match their active state. --- gtk/gtkstackswitcher.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gtk/gtkstackswitcher.c b/gtk/gtkstackswitcher.c index e9cbfc9b90..4392cc9cdb 100644 --- a/gtk/gtkstackswitcher.c +++ b/gtk/gtkstackswitcher.c @@ -267,6 +267,14 @@ add_child (guint position, selected = gtk_selection_model_is_selected (self->pages, position); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), selected); + gtk_accessible_update_state (GTK_ACCESSIBLE (button), + GTK_ACCESSIBLE_STATE_SELECTED, selected, + -1); + + gtk_accessible_update_relation (GTK_ACCESSIBLE (button), + GTK_ACCESSIBLE_RELATION_CONTROLS, g_list_append (NULL, page), + -1); + g_signal_connect (button, "notify::active", G_CALLBACK (on_button_toggled), self); g_signal_connect (page, "notify", G_CALLBACK (on_page_updated), self); @@ -331,6 +339,10 @@ selection_changed_cb (GtkSelectionModel *model, { selected = gtk_selection_model_is_selected (switcher->pages, i); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), selected); + + gtk_accessible_update_state (GTK_ACCESSIBLE (button), + GTK_ACCESSIBLE_STATE_SELECTED, selected, + -1); } g_object_unref (page); } -- 2.30.2